import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * En esta clase una Arana inpide el paso del personaje , ya que cada 2 segundos esta sube y baja en su telarana
 * 
 * @author (Ana Laura Hernadez Elias) 
 * @version (a version number or a date)
 */
public class Arana extends Enemigo
{
   
    private boolean bajar;
    private SimpleTimer tiempoAra;
    /**
    * en el constructor se reinicia la bandera de bajar y el reloj que se utilizara para invocar a los metodos
    */
    public Arana()
    {
        GreenfootImage imagen;
        bajar=true;
        tiempoAra=new SimpleTimer();
        tiempoAra.mark();
       
       imagen=new GreenfootImage ("aranaAr.png");
       imagen.scale(imagen.getWidth(),imagen.getHeight());
       setImage(imagen);
    }
     /**
     * en el actua se invocan los metodos de bajar y subir , dependiendo el valor de la bandera establecida
     */
    public void act() 
    {
        // Add your action code here.
        super.act();
        
         if(getTocar()==false)
         {
        if(bajar==true)
           bajar();
         else
           subir();
        }
    }   
    /**
     * metodo en el cual despues de 2 segundos la arana empieza a desceder y cambia su imagen , cambia la bandera de
     * bajar para que se pueda invocar al metodo de subir
     */ 
    public void bajar()
    {
         if(bajar==true&&tiempoAra.millisElapsed()>=2000)
            {
                GreenfootImage imagen;
                imagen=new GreenfootImage ("aranaA.png");
                imagen.scale(imagen.getWidth(),imagen.getHeight());
                setImage(imagen);  
              this.setLocation(getX(),getY()+140);
             tiempoAra.mark();
            
            }
            
         if(this.isTouching(Piso.class))
              bajar=false;
     
    }
    /**
     * metodo en el cual la arana sube cada 2 segundo y cambia su imagen, tambien pone la bandera de bajar en verdaddero , para
     * que se  pueda volver a invocar al metodo de bajar
     */
    public void subir()
    {
       if(tiempoAra.millisElapsed()>=2000)
          {
             GreenfootImage imagen;
             imagen=new GreenfootImage ("aranaAr.png");
             imagen.scale(imagen.getWidth(),imagen.getHeight());
             setImage(imagen);   
           this.setLocation(getX(),getY()-140);
           tiempoAra.mark();
          }  
       if(getY()==231)
          bajar=true; 
    }
}
